Changing
Sequencer Synchronization
To change the
synchronization mode of a sequencer device, use the MCI_SET command message with the
MCI_SEQ_SET_MASTER and MCI_SEQ_SET_SLAVE flags. Two members in the MCI_SEQ_SET_PARMS structure, dwMaster
and dwSlave, are used to specify the master and slave synchronization
modes.
The master
synchronization mode controls synchronization information sent by the sequencer
to an output port. The slave synchronization mode controls where the sequencer
gets its timing information to play a MIDI file. Following are the constants
for the dwMaster member and their corresponding master synchronization
modes.
|
Constant |
Synchronization
mode |
|
MCI_SEQ_MIDI |
MIDI
Synchronization. Send timing information to output port using MIDI timing
clock messages. |
|
MCI_SEQ_SMPTE |
SMPTE
Synchronization. Send timing information to output port using MIDI
quarter-frame messages. |
|
MCI_SEQ_NONE |
No
Synchronization. Send no timing information. |
Following are
the constants for the dwSlave member and their corresponding slave
synchronization modes.
|
Constant |
Synchronization
mode |
|
MCI_SEQ_FILE |
File
Synchronization. Get timing information from MIDI file. |
|
MCI_SEQ_MIDI |
MIDI
Synchronization. Get timing information from input port using MIDI timing
clock messages. |
|
MCI_SEQ_SMPTE |
SMPTE
Synchronization. Get timing information from input port using MIDI
quarter-frame messages. |
|
MCI_SEQ_NONE |
No
Synchronization. Get timing information from MCI commands only and ignore
timing information (such as tempo changes) that are in the MIDI file. |
Note Currently, for
master synchronization, the MCI MIDI sequencer supports only the No
Synchronization mode (MCI_SEQ_NONE). For slave synchronization, it supports
only the File Synchronization mode (MCI_SEQ_FILE) and the No Synchronization
mode (MCI_SEQ_NONE).